package com.itheima.tliasproject.exception;

import com.itheima.tliasproject.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@Slf4j
@RestControllerAdvice
// @ControllerAdvice
// @ResponseBody
public class GlobalExceptionHandler {

    // 处理所有运行时异常（如空指针、类型转换异常等）
    @ExceptionHandler(RuntimeException.class)
    public Result handleRuntimeException(RuntimeException ex) {
        log.error("运行时异常：", ex); // 打印完整异常栈（方便日志排查）
        return Result.error("系统异常：" + ex.getMessage() + "（类型：" + ex.getClass().getSimpleName() + "）");
    }

    // 处理所有未被捕获的异常（兜底）
    @ExceptionHandler(Exception.class)
    public Result handleException(Exception ex) {
        log.error("未知异常：", ex);
        return Result.error("系统未知异常：" + ex.getMessage() + "（类型：" + ex.getClass().getSimpleName() + "）");
    }
}
